In typical computer systems, application programs submit data in a predefined format for producing desired outputs on display devices. The data is normally stored in a frame buffer in the computer system. As shown in FIG. 1A, a typical system arrangement includes an application program 10 which interacts with and submits data to a computer system 12. The computer system 12 includes a central processing unit (CPU) 14 coupled to a frame buffer 16. The frame buffer 16 is further coupled to a digital-to-analog converter (DAC) 18. The DAC 18 receives digital data from the frame buffer 16 and converts the digital data by well known techniques to analog data for output on a display device 20. Of course, computer system 12 includes other components to perform other operations, the details of which are well known to those skilled in the art.
With the system arrangement as shown in FIG. 1A, the display device 20 may be one of a number of display device types, such as color, black and white, etc. Typically, the application program 10 is configured to support a format of at least one display device type. A device list, which describes the format of a frame buffer, such as the frame buffer 16, normally exists within computer system 12 and provides the display device type for the application program 10.
FIG. 1B is a representation of a device list 11. The device list 11 includes a plurality of data structures 13A-13C, each of the data structures 13A-13C representing a particular device, such as a monitor. Each of the data structures 13A-13C include a plurality of data fields 15A-15C, respectively, that indicate information about the device associated with that data structure 13A-13C. Also within each data structure 13A-13C there is typically a next device field 17 which points to the next data structure, as indicated by the arrows in FIG. 1B, thereby allowing for the linking of the data structures 13A-13C to provide the device list 11.
While the system arrangement as shown in FIG. 1A is adequate for some computer systems, most application programs have difficulty supporting new formats developed to improve performance, since such improvements are typically done well after the application program has been developed. Additionally, attempting to change the application program to support such improvements is time-consuming and costly. Without the ability to communicate with a frame buffer operating in accordance with a new format, the application program is generally rendered ineffective, since the application cannot provide data in that new display format.